export function toast(params) {
  uni.showToast({
    icon: params.icon || "none",
    title: params.title,
    duration: params.duration || 3000,
    ...params,
  });
}

export function showConfirm(params) {
  uni.showModal({
    title: "提示",
    content: params.content,
    cancelText: "取消",
    confirmText: "确定",
    ...params,
  });
}

let storageKey = "storage_data";
let storageData = uni.getStorageSync(storageKey) || {};

export const storage = {
  set(key, value) {
    let temp = uni.getStorageSync(storageKey);
    (temp = temp ? temp : {}), (temp[key] = value);
    uni.setStorageSync(storageKey, temp);
  },

  get(key) {
    return storageData[key] || "";
  },

  remove(key) {
    delete storageData[key];
    uni.setStorageSync(storageKey, storageData);
  },

  clean() {
    uni.removeStorageSync(storageKey);
  },
};

/**
 * 生成二维码
 * <canvas id="qrcode" canvas-id="qrcode" style="width: 200px;height: 200px; margin: 0 auto; margin-top: 50rpx;"></canvas>
 *
 */
export const createQrCode = () => {
  // 判断当前处于何种平台
  // return !!(canvas.getContext && canvas.getContext('2d'))
  // 获取uQRCode实例
  var qr = new UQRCode();
  // 设置二维码内容
  qr.data = "11";
  // 设置二维码大小，必须与canvas设置的宽高一致
  qr.size = 200;
  // 调用制作二维码方法
  qr.make();
  // 获取canvas上下文
  var canvasContext = uni.createCanvasContext("qrcode", this); // 如果是组件，this必须传入
  // 设置uQRCode实例的canvas上下文
  qr.canvasContext = canvasContext;
  // 调用绘制方法将二维码图案绘制到canvas上
  qr.drawCanvas();
};

/**
 * 	<!-- #ifdef H5 -->
		<button type="primary">只在h5显示</button>
		<!-- #endif -->
		<!-- #ifdef MP-WEIXIN -->
		<button type="primary">只在微信小程序显示</button>
		<!-- #endif -->
 */

export function debounce(func, wait, immediate) {
  let timeout; // 定义一个计时器变量，用于延迟执行函数
  return function (...args) {
    // 返回一个包装后的函数
    const context = this; // 保存函数执行上下文对象
    const later = function () {
      // 定义延迟执行的函数
      timeout = null; // 清空计时器变量
      if (!immediate) func.apply(context, args); // 若非立即执行，则调用待防抖函数
    };
    const callNow = immediate && !timeout; // 是否立即调用函数的条件
    clearTimeout(timeout); // 清空计时器
    timeout = setTimeout(later, wait); // 创建新的计时器，延迟执行函数
    if (callNow) func.apply(context, args); // 如果满足立即调用条件，则立即执行函数
  };
}

export function formatTime(time) {
  let date = new Date(time);
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, "0"); // 月份从0开始，需要+1，并保证两位数
  const day = String(date.getDate()).padStart(2, "0");
  const hours = String(date.getHours()).padStart(2, "0");
  const minutes = String(date.getMinutes()).padStart(2, "0");
  const seconds = String(date.getSeconds()).padStart(2, "0");

  // 格式化成需要的字符串
  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
